package com.atguigu.gmall.product.service;

import com.atguigu.gmall.model.product.*;
import com.baomidou.mybatisplus.core.metadata.IPage;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * @author 李旭
 * @date 2021/11/13 14:42
 * @Description:
 */
public interface ManageService {
    List<BaseCategory1> getCategory1();

    List<BaseCategory2> getCategory2(Long category1Id);

    List<BaseCategory3> getCategory3(Long category2Id);

    List<BaseAttrInfo> attrInfoList(Long category1Id, Long category2Id, Long category3Id);

    void saveAttrInfo(BaseAttrInfo baseAttrInfo);

    IPage<BaseTrademark> baseTrademarkList(Integer page, Integer limit);

    void baseTrademarkSave(BaseTrademark baseTrademark);

    IPage<SpuInfo> spuPage(Integer page, Integer limit, Long category3Id);

    List<BaseSaleAttr> baseSaleAttrList();

    List<BaseTrademark> getTrademarkList();

    void saveSpuInfo(SpuInfo spuInfo);

    IPage skuPage(Integer page, Integer limit);

    List<SpuImage> spuImageList(Long spuId);

    List<SpuSaleAttr> spuSaleAttrList(Long spuId);

    void saveSkuInfo(SkuInfo skuInfo);

    void onSale(Long skuId);

    void cancelSale(Long skuId);

    SkuInfo getSkuInfo(Long skuId);

    BaseCategoryView getBaseCategoryView(Long category3Id);

    BigDecimal getPrice(Long skuId);

    List<SpuSaleAttr> selectSpuSaleAttrListCheckBySku(Long spuId, Long skuId);

    Map getSaleAttrValuesBySpu(Long spuId);

    List<BaseCategoryView> getBaseCategoryViewList();

    BaseTrademark getBaseTrademark(Long tmId);

    List<SkuAttrValue> getSkuAttrValueList(Long skuId);
}
